package com.brainstore.patterns.state;

/**
 * Created by IntelliJ IDEA.
 * User: Дима
 * Date: 09.03.12
 * Time: 19:58
 * To change this template use File | Settings | File Templates.
 */

//Базовый класс всех tcp-состояний: инкапсуляция текущего состояния tcp-соединения и всех операций, которые в нем возможны.
public class TCPState {
    public void Transmit(TCPConnection conn, TCPOctetStream octStream) { }
    public void ActiveOpen(TCPConnection conn) { }
    public void PassiveOpen(TCPConnection conn) { }
    public void Close(TCPConnection conn) { }

    public void Synchronize (TCPConnection conn) { }
    public void Acknowledge (TCPConnection conn) { }
    public void Send (TCPConnection conn) { }

    /**
     * Обратите внимание что данный класс имеет доступ к этой
     * же одноименной операции у класса TCPConnection, поскольку
     * располагается в этом же пакете, а операция уровня доступа
     * package (package-protected)
     *
     * @param conn - соединение
     * @param state - новое состояние
     */
    protected void ChangeState(TCPConnection conn, TCPState state) {
        conn.ChangeState(state);
    }
}
